package dang.action.user;

import java.io.Serializable;
import java.util.Date;

import dang.action.DangAction;
import dang.common.DigestUtil;
import dang.dao.DaoFactory;
import dang.dao.UserDao;
import dang.entity.User;

public class LoginAction extends DangAction implements Serializable{
	private User user;
	private String preUrl;
	
	public String execute() throws Exception{
		// 1.检查用户名和密码是否匹配.如果不匹配返回登录界面
		if(user.getPassword()==null||user.getEmail()==null){
			setMessage("error", "用户名或密码不正确");
			return "notlogin";
		}
		UserDao dao = DaoFactory.getUserDao();
		User u=dao.findByEmail(user.getEmail());
		// 将用户输入密码加密
		String password=user.getPassword();
		password=DigestUtil.md5(password);
		user.setPassword(password);
		if(!u.getPassword().equals(user.getPassword())){
			setMessage("error", "用户名或密码不正确");
			return "notlogin";
		}
		// 2.检查is_email_verify是否激活。如果没有激活邮箱跳转到verifyForm.jsp
		boolean emailVerified=u.getIs_email_verify().equals("no")?false:true;
		if(!emailVerified){
			user=u;
			return "toverify";
		}
		
		
		// 3.如果用户名密码正确，邮箱也激活了。更新d_user表的last_login_time\last_login_ip字段，并跳转到main.jsp
		u.setLast_login_ip(request.getRemoteAddr());
		u.setLast_login_time(new Date().getTime());
		
		//cartInfoId区分用户购物车的cookie
		session.put("cartInfoId", u.getId());
		session.put("user", u);
		dao.update(u);
		
		//用在cartlist时
		//TODO
		//当前地址的命名空间和要跳转的命名空间不同
		//或者不是tologin.action时
		
		//未登录，在登录难时来登录
		//用在查看product时
		if(preUrl==null||"".equals(preUrl)){
			return "success";
		}
		else{
			return "preUrl";
		}
	}
	public User getUser() {
		return user;
	}
	public void setUser(User user) {
		this.user = user;
	}

	public String getPreUrl() {
		return preUrl;
	}

	public void setPreUrl(String preUrl) {
		this.preUrl = preUrl;
	}

}
